************************
*
* DISK ROUTINES 
*
************************
 LST OFF
*******************************
*  RWTS ROUTINES              *
*******************************
* USE TO BINARY DATA DIRECT
* TO DISK SECTORS
*
*
RWTS EQU $3D9 
TN EQU $31D 
SN EQU $31E 
* TN = TRACK NUMBER
* SN = SECTOR NUMBER
*CMD = COMMAND CODE  01 READ; 02 WRITE
*BUFLO = BUFFER ADDR. LO
*BUFHI = BUFFER ADDR. HI
*
 ORG $320  
IOB DFB01,$60,01,254
SETTN DFB$03
SETSN DFB$03
DCTLO DFB$31 
DCTHI DFB$3 
BUFLO DFB0
BUFHI DFB$60
 DFB0,0 
CMDCODE DFB 01
 DFB00,00,$60,1 
DRIVNO EQU IOB+2
*******************************
*  DEVICE CHAR. TABLE         *
********************************
DCT DFB0,1,$EF,$D8
*******************************
*   CONTROLLER                *
*******************************
CONTR LDA #3 
 LDY #$20 
 JSR RWTS
 RTS
******************************
*
*
READ LDA #1
 STA CMDCODE
 LDA SN
 STA SETSN
 LDA TN 
 STA SETTN
 JSR CONTR 
 RTS
WRITE LDA #2
 STA CMDCODE
 LDA SN
 STA SETSN
 LDA TN
 STA SETTN
 JSR CONTR   
 RTS
************************
************************
* TO READ 4K INTO MEM. * 
************************
* READS IN ONE WHOLE TRACK
* ENTER WITH TRACK NO. IN TN = $320 *
COUNT EQU $31C 
READTRACK LDA #16
 STA COUNT
LOOP1 JSR READ 
 INC SN
 INC BUFHI
 DEC COUNT
 BNE LOOP1
 RTS
***************************
*  WRITE A TRACK          *
***************************
* WRITES 4K INTO TRACK TN *
*************************** 
* ENTER WITH 4K BLOCK ADDR IN BUFHI & BUFLO *
WRITETRACK LDA #16
 STA COUNT
LOOP2 JSR WRITE
 INC SN
 INC BUFHI
 DEC COUNT
 BNE LOOP2
 RTS
******************************
* READ SECTORS SN TO SNFIN TRACK TN INTO MEM.*
**********************************************
SNFIN EQU $31F
READIT JSR READ
 INC SN
 INC BUFHI
 LDA SN
 CMP SNFIN
 BNE READIT
 JSR READ
 RTS
*********************************
* READ IN TWO CONSECTUTIVE TRACKS*
**********************************
READ8K STA TN   ;ENTER W. TN IN ACC
 STX BUFLO ;ENTER W. BUFLO IN X REG
 STY BUFHI ;ENTER W. BUFHI IN Y REG
 LDA #0
 STA SN
 JSR READTRACK
 INC TN
 LDA #0
 STA SN
 JSR READTRACK
 RTS
 LST ON
*******************************
*
 ORG $4100                          
*
*************************
*
* AZTEC BOOTER
*
*************************
*
* FIRST STAGE
*
*************************
*
*
START JSR $F3E2
 LDA $C057
 LDA $C054
 LDA $C052
 LDA $C050
 LDA #0 
 STA SN
 STA BUFLO
 LDA #$22
 STA TN
 LDA #$42 
 STA BUFHI
 JSR READ      
 LDA #4
 STA SN
 LDA #8
 STA BUFHI
 JSR READ ;$800
 INC SN
 INC BUFHI
 JSR READ ;$900
 INC SN
 INC BUFHI
 JSR READ ;$A00
 INC SN
 INC BUFHI
 JSR READ ;$B00
 INC SN
 INC BUFHI
 JSR READ ;$C00
 INC SN
 INC BUFHI
 JSR READ ;$D00
 INC SN
 INC BUFHI
 JSR READ ;$EOO
 INC SN
 INC BUFHI
 JSR READ ;$F00
 LDA #$1D
 STA TN 
 LDA #$F
 STA SN
 LDA #0
 STA BUFLO
 LDA #$6F
 STA BUFHI
 JSR READ
 LDX #0
LOOP LDA $4200,X
 STA $400,X
 INX
 BNE LOOP
 JMP $400
*
*
**************************
*
* SECOND STAGE
*
**************************
*
*
 ORG $2000 ;REALLY $400
*
*
START2 LDA #$18
 STA TN
 LDA #0
 STA SN
 STA BUFLO
 LDA #$40
 STA BUFHI
 JSR READTRACK
 JSR $4700
 LDA #$1B
 LDX #0
 LDY #$40
 JSR READ8K
 LDA #$1D
 LDX #0
 LDY #$60
 JSR READ8K
 LDA #$1F
 LDX #0
 LDY #$80
 JSR READ8K
 LDA #$21
 STA TN
 LDA #0
 STA SN
 STA BUFLO
 LDA #$10 
 STA BUFHI
 JSR READTRACK
 LDA #$0D
 JSR $5686
 LDX #255
 STX $50
 JSR $303
GETKEY BIT $C000
 BPL GETKEY
 LDA #0
 STA $C010
SKIPSCRATCH BEQ SKIPPED
SCRATCHPAD DS 33 
SKIPPED LDA $4E
 STA $10
 STA $12
 LDA $4F
 STA $11
 STA $13 ;SEED RND
 LDA #$50
 STA $0
 LDA #$22
 STA $1
 STA $3
 LDA #$A8
 STA $2
 LDA #$23
 STA $5
 LDA #0
 STA $4
 JMP $1B00 
*
*
